[INFO] cloning repository https://github.com/iwzbi/lazyhf
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iwzbi/lazyhf" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiwzbi%2Flazyhf", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiwzbi%2Flazyhf'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0e20504fb2c48852c2cb9b61ed91ac7d801c0b28
[INFO] checking iwzbi/lazyhf against try#1779a8680dcd39c56ed600627cf6742ef07ed78c for pr-149045
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiwzbi%2Flazyhf" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/iwzbi/lazyhf
[INFO] finished tweaking git repo https://github.com/iwzbi/lazyhf
[INFO] tweaked toml for git repo https://github.com/iwzbi/lazyhf written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iwzbi/lazyhf on toolchain 1779a8680dcd39c56ed600627cf6742ef07ed78c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iwzbi/lazyhf already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded easy-cast v0.5.3
[INFO] [stderr]   Downloaded struct-patch v0.9.2
[INFO] [stderr]   Downloaded filetreelist v0.5.2
[INFO] [stderr]   Downloaded struct-patch-derive v0.9.2
[INFO] [stderr]   Downloaded unicode-truncate v2.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dd1053ff00b9d5415e3d29aaaa0fa17c47fb2d626dd0ab4c71d2cb20ca2f75f8
[INFO] running `Command { std: "docker" "start" "-a" "dd1053ff00b9d5415e3d29aaaa0fa17c47fb2d626dd0ab4c71d2cb20ca2f75f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dd1053ff00b9d5415e3d29aaaa0fa17c47fb2d626dd0ab4c71d2cb20ca2f75f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd1053ff00b9d5415e3d29aaaa0fa17c47fb2d626dd0ab4c71d2cb20ca2f75f8", kill_on_drop: false }`
[INFO] [stdout] dd1053ff00b9d5415e3d29aaaa0fa17c47fb2d626dd0ab4c71d2cb20ca2f75f8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 85c9a789f2c07fd17c85deb3b1132320ee20014a01f34bd948ef82387143d0d1
[INFO] running `Command { std: "docker" "start" "-a" "85c9a789f2c07fd17c85deb3b1132320ee20014a01f34bd948ef82387143d0d1", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking lock_api v0.4.12
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking castaway v0.2.3
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]    Compiling anyhow v1.0.97
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]     Checking clap_builder v4.5.36
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking chrono v0.4.40
[INFO] [stderr]     Checking unicode-truncate v2.0.0
[INFO] [stderr]     Checking easy-cast v0.5.3
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking clap v4.5.36
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling struct-patch-derive v0.9.2
[INFO] [stderr]     Checking struct-patch v0.9.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking filetreelist v0.5.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling instability v0.3.7
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking ron v0.10.1
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking lazyllm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `InputState`, `ellipsis_trim_start`, and `order`
[INFO] [stdout]   --> src/app.rs:9:32
[INFO] [stdout]    |
[INFO] [stdout]  9 |     input::{Input, InputEvent, InputState},
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     strings::{self, ellipsis_trim_start, order},
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam_channel::Sender`
[INFO] [stdout]   --> src/app.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crossbeam_channel::Sender;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment` and `Paragraph`
[INFO] [stdout]   --> src/app.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 44 |     text::{Line, Span},
[INFO] [stdout] 45 |     widgets::{Block, Borders, Paragraph, Tabs},
[INFO] [stdout]    |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> src/app.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     path::{Path, PathBuf},
[INFO] [stdout]    |            ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/args.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fs::{self, File},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ghemoji`
[INFO] [stdout]  --> src/components/utils/mod.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[cfg(feature = "ghemoji")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `ghemoji` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CommandBlocking`
[INFO] [stdout]  --> src/components/revision_files.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 |     utils::scroll_vertical::VerticalScroll, CommandBlocking,
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `order`
[INFO] [stdout]   --> src/components/revision_files.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |     strings::{self, order, symbol},
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossterm::event::Event`
[INFO] [stdout]   --> src/components/revision_files.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crossterm::event::Event;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Constraint`, `Direction`, and `Layout`
[INFO] [stdout]   --> src/components/revision_files.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 |     layout::{Constraint, Direction, Layout, Rect},
[INFO] [stdout]    |              ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::Write`
[INFO] [stdout]   --> src/components/revision_files.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::{borrow::Cow, fmt::Write};
[INFO] [stdout]    |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::BTreeSet` and `path::Path`
[INFO] [stdout]   --> src/components/revision_files.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | use std::{collections::BTreeSet, path::Path};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_truncate::UnicodeTruncateStr`
[INFO] [stdout]   --> src/components/revision_files.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use unicode_truncate::UnicodeTruncateStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Terminal` and `backend::CrosstermBackend`
[INFO] [stdout]    --> src/components/revision_files.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 395 |     backend::CrosstermBackend,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     Terminal,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::style::Theme`
[INFO] [stdout]  --> src/components/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::ui::style::Theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossterm::event::Event`
[INFO] [stdout]  --> src/components/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crossterm::event::Event;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment`, `Block`, `Borders`, `Paragraph`, `Span`, and `Text`
[INFO] [stdout]   --> src/components/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     layout::{Alignment, Rect},
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 11 |     text::{Span, Text},
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 12 |     widgets::{Block, Borders, Paragraph},
[INFO] [stdout]    |               ^^^^^  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CommandText`
[INFO] [stdout]   --> src/components/mod.rs:18:32
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use command::{CommandInfo, CommandText};
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tabs/files.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tabs/status.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `draw_list`
[INFO] [stdout]   --> src/ui/mod.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use scrolllist::{draw_list, draw_list_block};
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParagraphState`, `ScrollPos`, and `StatefulParagraph`
[INFO] [stdout]   --> src/ui/mod.rs:13:2
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ParagraphState, ScrollPos, StatefulParagraph,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `collections::VecDeque`, `path::PathBuf`, and `rc::Rc`
[INFO] [stdout]   --> src/queue.rs:17:2
[INFO] [stdout]    |
[INFO] [stdout] 17 |     cell::RefCell, collections::VecDeque, path::PathBuf, rc::Rc,
[INFO] [stdout]    |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]   --> src/main.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | use anyhow::{anyhow, bail, Result};
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `panic`, `path::Path`, and `process`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     io::{self, Stdout},
[INFO] [stdout] 19 |     panic,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 20 |     path::Path,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 21 |     process,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unbounded`
[INFO] [stdout]   --> src/main.rs:35:38
[INFO] [stdout]    |
[INFO] [stdout] 35 | use crossbeam_channel::{never, tick, unbounded, Receiver, Select};
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InputState`, `ellipsis_trim_start`, and `order`
[INFO] [stdout]   --> src/app.rs:9:32
[INFO] [stdout]    |
[INFO] [stdout]  9 |     input::{Input, InputEvent, InputState},
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     strings::{self, ellipsis_trim_start, order},
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam_channel::Sender`
[INFO] [stdout]   --> src/app.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crossbeam_channel::Sender;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment` and `Paragraph`
[INFO] [stdout]   --> src/app.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 44 |     text::{Line, Span},
[INFO] [stdout] 45 |     widgets::{Block, Borders, Paragraph, Tabs},
[INFO] [stdout]    |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> src/app.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     path::{Path, PathBuf},
[INFO] [stdout]    |            ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/args.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fs::{self, File},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ghemoji`
[INFO] [stdout]  --> src/components/utils/mod.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[cfg(feature = "ghemoji")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `ghemoji` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CommandBlocking`
[INFO] [stdout]  --> src/components/revision_files.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 |     utils::scroll_vertical::VerticalScroll, CommandBlocking,
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `order`
[INFO] [stdout]   --> src/components/revision_files.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |     strings::{self, order, symbol},
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossterm::event::Event`
[INFO] [stdout]   --> src/components/revision_files.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crossterm::event::Event;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Constraint`, `Direction`, and `Layout`
[INFO] [stdout]   --> src/components/revision_files.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 |     layout::{Constraint, Direction, Layout, Rect},
[INFO] [stdout]    |              ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::Write`
[INFO] [stdout]   --> src/components/revision_files.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::{borrow::Cow, fmt::Write};
[INFO] [stdout]    |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::BTreeSet` and `path::Path`
[INFO] [stdout]   --> src/components/revision_files.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | use std::{collections::BTreeSet, path::Path};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_truncate::UnicodeTruncateStr`
[INFO] [stdout]   --> src/components/revision_files.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use unicode_truncate::UnicodeTruncateStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Terminal` and `backend::CrosstermBackend`
[INFO] [stdout]    --> src/components/revision_files.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 395 |     backend::CrosstermBackend,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     Terminal,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::style::Theme`
[INFO] [stdout]  --> src/components/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::ui::style::Theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossterm::event::Event`
[INFO] [stdout]  --> src/components/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crossterm::event::Event;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment`, `Block`, `Borders`, `Paragraph`, `Span`, and `Text`
[INFO] [stdout]   --> src/components/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     layout::{Alignment, Rect},
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 11 |     text::{Span, Text},
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 12 |     widgets::{Block, Borders, Paragraph},
[INFO] [stdout]    |               ^^^^^  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CommandText`
[INFO] [stdout]   --> src/components/mod.rs:18:32
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use command::{CommandInfo, CommandText};
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tabs/files.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tabs/status.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `draw_list`
[INFO] [stdout]   --> src/ui/mod.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use scrolllist::{draw_list, draw_list_block};
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParagraphState`, `ScrollPos`, and `StatefulParagraph`
[INFO] [stdout]   --> src/ui/mod.rs:13:2
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ParagraphState, ScrollPos, StatefulParagraph,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `collections::VecDeque`, `path::PathBuf`, and `rc::Rc`
[INFO] [stdout]   --> src/queue.rs:17:2
[INFO] [stdout]    |
[INFO] [stdout] 17 |     cell::RefCell, collections::VecDeque, path::PathBuf, rc::Rc,
[INFO] [stdout]    |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]   --> src/main.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 | use anyhow::{anyhow, bail, Result};
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell`, `panic`, `path::Path`, and `process`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     io::{self, Stdout},
[INFO] [stdout] 19 |     panic,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 20 |     path::Path,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 21 |     process,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unbounded`
[INFO] [stdout]   --> src/main.rs:35:38
[INFO] [stdout]    |
[INFO] [stdout] 35 | use crossbeam_channel::{never, tick, unbounded, Receiver, Select};
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_width::UnicodeWidthStr`
[INFO] [stdout]   --> src/components/revision_files.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use unicode_width::UnicodeWidthStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_area`
[INFO] [stdout]     --> src/app.rs:1031:13
[INFO] [stdout]      |
[INFO] [stdout] 1031 |         let text_area = left_right[1];
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_area`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_width::UnicodeWidthStr`
[INFO] [stdout]   --> src/components/revision_files.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use unicode_width::UnicodeWidthStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_area`
[INFO] [stdout]     --> src/app.rs:1031:13
[INFO] [stdout]      |
[INFO] [stdout] 1031 |         let text_area = left_right[1];
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_area`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quit_state`
[INFO] [stdout]    --> src/main.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let quit_state = run_app(
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quit_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updater`
[INFO] [stdout]    --> src/main.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |     updater: Updater,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updater`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SPINNER_INTERVAL` is never used
[INFO] [stdout]   --> src/main.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | static SPINNER_INTERVAL: Duration = Duration::from_millis(80);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotifyWatcher` is never constructed
[INFO] [stdout]   --> src/main.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum Updater {
[INFO] [stdout]    |      ------- variant in this enum
[INFO] [stdout] 73 |     Ticker,
[INFO] [stdout] 74 |     NotifyWatcher,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Updater` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `requires_redraw` and `file_to_open` are never read
[INFO] [stdout]    --> src/app.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout]  64 | pub struct App {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 112 |     requires_redraw: Cell<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 113 |     file_to_open: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workdir` and `notify_watcher` are never read
[INFO] [stdout]   --> src/args.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct CliArgs {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 13 |     pub theme: PathBuf,
[INFO] [stdout] 14 |     pub workdir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 15 |     pub notify_watcher: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `desired_state` and `current_state` are never read
[INFO] [stdout]   --> src/input.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Input {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 34 |     desired_state: Arc<NotifyableMutex<bool>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     current_state: Arc<AtomicBool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Input` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_polling`, `shall_poll`, and `is_state_changing` are never used
[INFO] [stdout]   --> src/input.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn set_polling(&self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn shall_poll(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn is_state_changing(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScrollType` is never used
[INFO] [stdout]   --> src/components/mod.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ScrollType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HorizontalScrollType` is never used
[INFO] [stdout]   --> src/components/mod.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum HorizontalScrollType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]   --> src/components/mod.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum Direction {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CommandBlocking` is never used
[INFO] [stdout]   --> src/components/mod.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum CommandBlocking {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `focused`, `focus`, and `toggle_visible` are never used
[INFO] [stdout]   --> src/components/mod.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub trait Component {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn focused(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn focus(&mut self, _focus: bool) {}
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn toggle_visible(&mut self) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `hide_help` are never used
[INFO] [stdout]   --> src/components/command.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl CommandText {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     ///
[INFO] [stdout] 18 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub const fn hide_help(self) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `quick_bar`, `available`, and `order` are never read
[INFO] [stdout]   --> src/components/command.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct CommandInfo {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub quick_bar: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub available: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 49 |     /// used to order commands in quickbar
[INFO] [stdout] 50 |     pub order: i8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `order`, `hidden`, and `show_in_quickbar` are never used
[INFO] [stdout]   --> src/components/command.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl CommandInfo {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 54 |     ///
[INFO] [stdout] 55 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub const fn order(self, order: i8) -> Self {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub const fn hidden(self) -> Self {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub const fn show_in_quickbar(&self) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `time_to_string` is never used
[INFO] [stdout]   --> src/components/utils/mod.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn time_to_string(secs: i64, short: bool) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_width_align` is never used
[INFO] [stdout]   --> src/components/utils/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn string_width_align(s: &str, width: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_truncate_point` is never used
[INFO] [stdout]   --> src/components/utils/mod.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn find_truncate_point(s: &str, chars: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HorizontalScroll` is never constructed
[INFO] [stdout]  --> src/components/utils/scroll_horizontal.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct HorizontalScroll {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/components/utils/scroll_horizontal.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl HorizontalScroll {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub const fn new() -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn get_right(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn move_right(
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn update(
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn update_no_selection(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn draw(&self, f: &mut Frame, r: Rect, theme: &SharedTheme) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_scroll_right` is never used
[INFO] [stdout]   --> src/components/utils/scroll_horizontal.rs:97:10
[INFO] [stdout]    |
[INFO] [stdout] 97 | const fn calc_scroll_right(
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `top` and `max_top` are never read
[INFO] [stdout]   --> src/components/utils/scroll_vertical.rs:9:2
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct VerticalScroll {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout]  9 |     top: Cell<usize>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     max_top: Cell<usize>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/components/utils/scroll_vertical.rs:21:9
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl VerticalScroll {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  21 |     pub fn get_top(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  29 |     pub fn move_top(&self, move_type: ScrollType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn move_area_to_visible(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn update(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn update_no_selection(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn draw(&self, f: &mut Frame, r: Rect, theme: &SharedTheme) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_scroll_top` is never used
[INFO] [stdout]    --> src/components/utils/scroll_vertical.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 | const fn calc_scroll_top(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `File` is never constructed
[INFO] [stdout]   --> src/components/revision_files.rs:43:2
[INFO] [stdout]    |
[INFO] [stdout] 41 | enum Focus {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 42 |     Tree,
[INFO] [stdout] 43 |     File,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `theme`, `files`, `tree`, `scroll`, `focus`, and `key_config` are never read
[INFO] [stdout]   --> src/components/revision_files.rs:57:2
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct RevisionFilesComponent {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |     theme: SharedTheme,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 58 |     //TODO: store TreeFiles in `tree`
[INFO] [stdout] 59 |     files: Option<Vec<TreeFile>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     tree: FileTree,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 63 |     scroll: VerticalScroll,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     focus: Focus,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 67 |     key_config: SharedKeyConfig,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `tree_item_to_span`, `selected_file_path_with_prefix`, `selected_file_path`, and `draw_tree` are never used
[INFO] [stdout]    --> src/components/revision_files.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl RevisionFilesComponent {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn tree_item_to_span<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn selected_file_path_with_prefix(&self) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn selected_file_path(&self) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn draw_tree(&self, f: &mut Frame, area: Rect) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_nav` is never used
[INFO] [stdout]    --> src/components/revision_files.rs:591:4
[INFO] [stdout]     |
[INFO] [stdout] 591 | fn tree_nav(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_scroll_top` is never used
[INFO] [stdout]   --> src/ui/mod.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const fn calc_scroll_top(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Size` is never constructed
[INFO] [stdout]   --> src/ui/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Size {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/mod.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Size {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 42 |     pub const fn new(width: u16, height: u16) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]   --> src/ui/mod.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn centered_rect(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rect_inside` is never used
[INFO] [stdout]   --> src/ui/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn rect_inside(min: Size, max: Size, r: Rect) -> Rect {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect_absolute` is never used
[INFO] [stdout]    --> src/ui/mod.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn centered_rect_absolute(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `common_nav` is never used
[INFO] [stdout]    --> src/ui/mod.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn common_nav(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NBSP` is never used
[INFO] [stdout]  --> src/ui/reflow.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NBSP: &str = "\u{00a0}";
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LineComposer` is never used
[INFO] [stdout]   --> src/ui/reflow.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait LineComposer<'a> {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WordWrapper` is never constructed
[INFO] [stdout]   --> src/ui/reflow.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct WordWrapper<'a, 'b> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/reflow.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<'a, 'b> WordWrapper<'a, 'b> {
[INFO] [stdout]    | -------------------------------- associated function in this implementation
[INFO] [stdout] 26 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LineTruncator` is never constructed
[INFO] [stdout]    --> src/ui/reflow.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub struct LineTruncator<'a, 'b> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_horizontal_offset` are never used
[INFO] [stdout]    --> src/ui/reflow.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl<'a, 'b> LineTruncator<'a, 'b> {
[INFO] [stdout]     | ---------------------------------- associated items in this implementation
[INFO] [stdout] 152 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn set_horizontal_offset(&mut self, horizontal_offset: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Orientation` is never used
[INFO] [stdout]   --> src/ui/scrollbar.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Orientation {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scrollbar` is never constructed
[INFO] [stdout]   --> src/ui/scrollbar.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Scrollbar {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `render_vertical`, and `render_horizontal` are never used
[INFO] [stdout]   --> src/ui/scrollbar.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Scrollbar {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 30 |     fn new(max: usize, pos: usize, orientation: Orientation) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn render_vertical(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn render_horizontal(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_scrollbar` is never used
[INFO] [stdout]    --> src/ui/scrollbar.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn draw_scrollbar(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScrollableList` is never constructed
[INFO] [stdout]   --> src/ui/scrolllist.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct ScrollableList<'b, L, S>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `block` are never used
[INFO] [stdout]   --> src/ui/scrolllist.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | / impl<'b, L, S> ScrollableList<'b, L, S>
[INFO] [stdout] 25 | | where
[INFO] [stdout] 26 | |     S: Into<Text<'b>>,
[INFO] [stdout] 27 | |     L: Iterator<Item = S>,
[INFO] [stdout]    | |__________________________- associated items in this implementation
[INFO] [stdout] 28 |   {
[INFO] [stdout] 29 |       fn new(items: L) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |       fn block(mut self, block: Block<'b>) -> Self {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_list` is never used
[INFO] [stdout]   --> src/ui/scrolllist.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn draw_list<'b, L, S>(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_list_block` is never used
[INFO] [stdout]   --> src/ui/scrolllist.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn draw_list_block<'b, L, S>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line_offset` is never used
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | const fn get_line_offset(
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatefulParagraph` is never constructed
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct StatefulParagraph<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScrollPos` is never constructed
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct ScrollPos {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParagraphState` is never constructed
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct ParagraphState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lines`, `height`, `scroll`, and `set_scroll` are never used
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl ParagraphState {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 61 |     pub const fn lines(self) -> u16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub const fn height(self) -> u16 {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub const fn scroll(self) -> ScrollPos {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn set_scroll(&mut self, scroll: ScrollPos) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `block`, and `wrap` are never used
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl<'a> StatefulParagraph<'a> {
[INFO] [stdout]    | ------------------------------ associated items in this implementation
[INFO] [stdout] 79 |     pub fn new<T>(text: T) -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn block(mut self, block: Block<'a>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub const fn wrap(mut self, wrap: Wrap) -> Self {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/style.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Theme {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  41 |     pub fn scroll_bar_pos(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn title(&self, focused: bool) -> Style {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn branch(&self, selected: bool, head: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn tags(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn file_tree_item(&self, is_folder: bool, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     const fn apply_select(&self, style: Style, selected: bool) -> Style {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn option(&self, on: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn diff_hunk_marker(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn text_danger(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn line_break(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn commit_hash(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn commit_unhighlighted(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn log_marker(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn commit_time(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn commit_author(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn commit_hash_in_blame(&self, is_blamed_commit: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn push_gauge(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn attention_block() -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn get_syntax(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetItem` is never constructed
[INFO] [stdout]   --> src/queue.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct ResetItem {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_length_left` is never used
[INFO] [stdout]  --> src/string_utils.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn trim_length_left(s: &str, width: usize) -> &str {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tabs_to_spaces` is never used
[INFO] [stdout]   --> src/string_utils.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn tabs_to_spaces(input: String) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_offset` is never used
[INFO] [stdout]   --> src/string_utils.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn trim_offset(src: &str, mut offset: usize) -> &str {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub static PUSH_POPUP_MSG: &str = "Push";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FORCE_PUSH_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub static FORCE_PUSH_POPUP_MSG: &str = "Force Push";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PULL_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static PULL_POPUP_MSG: &str = "Pull";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FETCH_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub static FETCH_POPUP_MSG: &str = "Fetch";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_PROGRESS_NONE` is never used
[INFO] [stdout]   --> src/strings.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static PUSH_POPUP_PROGRESS_NONE: &str = "preparing...";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_ADDING` is never used
[INFO] [stdout]   --> src/strings.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub static PUSH_POPUP_STATES_ADDING: &str = "adding objects (1/3)";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_DELTAS` is never used
[INFO] [stdout]   --> src/strings.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub static PUSH_POPUP_STATES_DELTAS: &str = "deltas (2/3)";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_PUSHING` is never used
[INFO] [stdout]   --> src/strings.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub static PUSH_POPUP_STATES_PUSHING: &str = "pushing (3/3)";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_TRANSFER` is never used
[INFO] [stdout]   --> src/strings.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub static PUSH_POPUP_STATES_TRANSFER: &str = "transfer";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_DONE` is never used
[INFO] [stdout]   --> src/strings.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub static PUSH_POPUP_STATES_DONE: &str = "done";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub static PUSH_TAGS_POPUP_MSG: &str = "Push Tags";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_STATES_FETCHING` is never used
[INFO] [stdout]   --> src/strings.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub static PUSH_TAGS_STATES_FETCHING: &str = "fetching";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_STATES_PUSHING` is never used
[INFO] [stdout]   --> src/strings.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub static PUSH_TAGS_STATES_PUSHING: &str = "pushing";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_STATES_DONE` is never used
[INFO] [stdout]   --> src/strings.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub static PUSH_TAGS_STATES_DONE: &str = "done";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_SUBMODULES` is never used
[INFO] [stdout]   --> src/strings.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub static POPUP_TITLE_SUBMODULES: &str = "Submodules";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_REMOTES` is never used
[INFO] [stdout]   --> src/strings.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub static POPUP_TITLE_REMOTES: &str = "Remotes";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_SUBTITLE_REMOTES` is never used
[INFO] [stdout]   --> src/strings.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub static POPUP_SUBTITLE_REMOTES: &str = "Details";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_FUZZY_FIND` is never used
[INFO] [stdout]   --> src/strings.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub static POPUP_TITLE_FUZZY_FIND: &str = "Fuzzy Finder";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_LOG_SEARCH` is never used
[INFO] [stdout]   --> src/strings.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub static POPUP_TITLE_LOG_SEARCH: &str = "Search";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_FAIL_COPY` is never used
[INFO] [stdout]   --> src/strings.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub static POPUP_FAIL_COPY: &str = "Failed to copy text";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_SUCCESS_COPY` is never used
[INFO] [stdout]   --> src/strings.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub static POPUP_SUCCESS_COPY: &str = "Copied Text";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_COMMIT_SHA_INVALID` is never used
[INFO] [stdout]   --> src/strings.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub static POPUP_COMMIT_SHA_INVALID: &str = "Invalid commit sha";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_branches` is never used
[INFO] [stdout]   --> src/strings.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn title_branches() -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_tags` is never used
[INFO] [stdout]   --> src/strings.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn title_tags() -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_status` is never used
[INFO] [stdout]   --> src/strings.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn title_status(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_diff` is never used
[INFO] [stdout]   --> src/strings.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn title_diff(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_index` is never used
[INFO] [stdout]   --> src/strings.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn title_index(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msg_opening_editor` is never used
[INFO] [stdout]    --> src/strings.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn msg_opening_editor(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msg_title_error` is never used
[INFO] [stdout]    --> src/strings.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn msg_title_error(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msg_title_info` is never used
[INFO] [stdout]    --> src/strings.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn msg_title_info(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title` is never used
[INFO] [stdout]    --> src/strings.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn commit_title() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_reword_title` is never used
[INFO] [stdout]    --> src/strings.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn commit_reword_title() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title_merge` is never used
[INFO] [stdout]    --> src/strings.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn commit_title_merge() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title_revert` is never used
[INFO] [stdout]    --> src/strings.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn commit_title_revert() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title_amend` is never used
[INFO] [stdout]    --> src/strings.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn commit_title_amend() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_msg` is never used
[INFO] [stdout]    --> src/strings.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn commit_msg(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_first_line_warning` is never used
[INFO] [stdout]    --> src/strings.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn commit_first_line_warning(count: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_name_invalid` is never used
[INFO] [stdout]    --> src/strings.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub const fn branch_name_invalid() -> &'static str {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_editor_msg` is never used
[INFO] [stdout]    --> src/strings.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn commit_editor_msg(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stash_popup_title` is never used
[INFO] [stdout]    --> src/strings.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub fn stash_popup_title(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stash_popup_msg` is never used
[INFO] [stdout]    --> src/strings.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn stash_popup_msg(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_reset` is never used
[INFO] [stdout]    --> src/strings.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn confirm_title_reset() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_undo_commit` is never used
[INFO] [stdout]    --> src/strings.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn confirm_title_undo_commit() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_stashdrop` is never used
[INFO] [stdout]    --> src/strings.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn confirm_title_stashdrop(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_stashpop` is never used
[INFO] [stdout]    --> src/strings.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn confirm_title_stashpop(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_merge` is never used
[INFO] [stdout]    --> src/strings.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn confirm_title_merge(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_merge` is never used
[INFO] [stdout]    --> src/strings.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn confirm_msg_merge(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_abortmerge` is never used
[INFO] [stdout]    --> src/strings.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub fn confirm_title_abortmerge() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_abortrevert` is never used
[INFO] [stdout]    --> src/strings.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn confirm_title_abortrevert() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_revertchanges` is never used
[INFO] [stdout]    --> src/strings.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn confirm_msg_revertchanges() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_abortrebase` is never used
[INFO] [stdout]    --> src/strings.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn confirm_title_abortrebase() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_abortrebase` is never used
[INFO] [stdout]    --> src/strings.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn confirm_msg_abortrebase() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_reset` is never used
[INFO] [stdout]    --> src/strings.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn confirm_msg_reset() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_reset_lines` is never used
[INFO] [stdout]    --> src/strings.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn confirm_msg_reset_lines(lines: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_undo_commit` is never used
[INFO] [stdout]    --> src/strings.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn confirm_msg_undo_commit() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loading_text` is never used
[INFO] [stdout]    --> src/strings.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn loading_text(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ellipsis_trim_start` is never used
[INFO] [stdout]    --> src/strings.rs:426:8
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub fn ellipsis_trim_start(s: &str, width: usize) -> Cow<str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RARE_ACTION` is never used
[INFO] [stdout]   --> src/strings.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub const RARE_ACTION: i8 = 30;
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAV` is never used
[INFO] [stdout]   --> src/strings.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub const NAV: i8 = 20;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AVERAGE` is never used
[INFO] [stdout]   --> src/strings.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub const AVERAGE: i8 = 10;
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRIORITY` is never used
[INFO] [stdout]   --> src/strings.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub const PRIORITY: i8 = 1;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHECKMARK` is never used
[INFO] [stdout]   --> src/strings.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const CHECKMARK: &str = "\u{2713}"; //✓
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPACE` is never used
[INFO] [stdout]   --> src/strings.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const SPACE: &str = "\u{02FD}"; //˽
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_SPACE` is never used
[INFO] [stdout]   --> src/strings.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const EMPTY_SPACE: &str = " ";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FOLDER_ICON_COLLAPSED` is never used
[INFO] [stdout]   --> src/strings.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const FOLDER_ICON_COLLAPSED: &str = "\u{25b8}"; //▸
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FOLDER_ICON_EXPANDED` is never used
[INFO] [stdout]   --> src/strings.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const FOLDER_ICON_EXPANDED: &str = "\u{25be}"; //▾
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_STR` is never used
[INFO] [stdout]   --> src/strings.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const EMPTY_STR: &str = "";
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ELLIPSIS` is never used
[INFO] [stdout]   --> src/strings.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const ELLIPSIS: char = '\u{2026}'; // …
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_and_notify` is never used
[INFO] [stdout]   --> src/notify_mutex.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | / impl<T> NotifyableMutex<T>
[INFO] [stdout] 13 | | where
[INFO] [stdout] 14 | |     T: Send + Sync,
[INFO] [stdout]    | |___________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |       pub fn set_and_notify(&self, value: T) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_cmds` and `toggle_more` are never used
[INFO] [stdout]    --> src/cmdbar.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl CommandBar {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn set_cmds(&mut self, cmds: Vec<CommandInfo>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn toggle_more(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/strings.rs:426:31
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub fn ellipsis_trim_start(s: &str, width: usize) -> Cow<str> {
[INFO] [stdout]     |                               ^^^^                   ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub fn ellipsis_trim_start(s: &str, width: usize) -> Cow<'_, str> {
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quit_state`
[INFO] [stdout]    --> src/main.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let quit_state = run_app(
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quit_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updater`
[INFO] [stdout]    --> src/main.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |     updater: Updater,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updater`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SPINNER_INTERVAL` is never used
[INFO] [stdout]   --> src/main.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | static SPINNER_INTERVAL: Duration = Duration::from_millis(80);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotifyWatcher` is never constructed
[INFO] [stdout]   --> src/main.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum Updater {
[INFO] [stdout]    |      ------- variant in this enum
[INFO] [stdout] 73 |     Ticker,
[INFO] [stdout] 74 |     NotifyWatcher,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Updater` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `requires_redraw` and `file_to_open` are never read
[INFO] [stdout]    --> src/app.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout]  64 | pub struct App {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 112 |     requires_redraw: Cell<bool>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 113 |     file_to_open: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workdir` and `notify_watcher` are never read
[INFO] [stdout]   --> src/args.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct CliArgs {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 13 |     pub theme: PathBuf,
[INFO] [stdout] 14 |     pub workdir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 15 |     pub notify_watcher: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `desired_state` and `current_state` are never read
[INFO] [stdout]   --> src/input.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Input {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 34 |     desired_state: Arc<NotifyableMutex<bool>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     current_state: Arc<AtomicBool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Input` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_polling`, `shall_poll`, and `is_state_changing` are never used
[INFO] [stdout]   --> src/input.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn set_polling(&self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn shall_poll(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn is_state_changing(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScrollType` is never used
[INFO] [stdout]   --> src/components/mod.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum ScrollType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HorizontalScrollType` is never used
[INFO] [stdout]   --> src/components/mod.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum HorizontalScrollType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]   --> src/components/mod.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum Direction {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CommandBlocking` is never used
[INFO] [stdout]   --> src/components/mod.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum CommandBlocking {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `focused`, `focus`, and `toggle_visible` are never used
[INFO] [stdout]   --> src/components/mod.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub trait Component {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn focused(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn focus(&mut self, _focus: bool) {}
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn toggle_visible(&mut self) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `hide_help` are never used
[INFO] [stdout]   --> src/components/command.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl CommandText {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     ///
[INFO] [stdout] 18 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub const fn hide_help(self) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `quick_bar`, `available`, and `order` are never read
[INFO] [stdout]   --> src/components/command.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct CommandInfo {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub quick_bar: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub available: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 49 |     /// used to order commands in quickbar
[INFO] [stdout] 50 |     pub order: i8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `order`, `hidden`, and `show_in_quickbar` are never used
[INFO] [stdout]   --> src/components/command.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl CommandInfo {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 54 |     ///
[INFO] [stdout] 55 |     pub const fn new(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub const fn order(self, order: i8) -> Self {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub const fn hidden(self) -> Self {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub const fn show_in_quickbar(&self) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `time_to_string` is never used
[INFO] [stdout]   --> src/components/utils/mod.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn time_to_string(secs: i64, short: bool) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_width_align` is never used
[INFO] [stdout]   --> src/components/utils/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn string_width_align(s: &str, width: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_truncate_point` is never used
[INFO] [stdout]   --> src/components/utils/mod.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn find_truncate_point(s: &str, chars: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HorizontalScroll` is never constructed
[INFO] [stdout]  --> src/components/utils/scroll_horizontal.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct HorizontalScroll {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/components/utils/scroll_horizontal.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl HorizontalScroll {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub const fn new() -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn get_right(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn move_right(
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn update(
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn update_no_selection(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn draw(&self, f: &mut Frame, r: Rect, theme: &SharedTheme) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `move_top`, `update`, `update_no_selection`, and `draw` are never used
[INFO] [stdout]    --> src/components/utils/scroll_vertical.rs:25:9
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl VerticalScroll {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  25 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  29 |     pub fn move_top(&self, move_type: ScrollType) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn update(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn update_no_selection(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn draw(&self, f: &mut Frame, r: Rect, theme: &SharedTheme) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `File` is never constructed
[INFO] [stdout]   --> src/components/revision_files.rs:43:2
[INFO] [stdout]    |
[INFO] [stdout] 41 | enum Focus {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] 42 |     Tree,
[INFO] [stdout] 43 |     File,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `theme`, `files`, `tree`, `scroll`, `focus`, and `key_config` are never read
[INFO] [stdout]   --> src/components/revision_files.rs:57:2
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct RevisionFilesComponent {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |     theme: SharedTheme,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 58 |     //TODO: store TreeFiles in `tree`
[INFO] [stdout] 59 |     files: Option<Vec<TreeFile>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     tree: FileTree,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 63 |     scroll: VerticalScroll,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     focus: Focus,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 67 |     key_config: SharedKeyConfig,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `tree_item_to_span`, `selected_file_path_with_prefix`, `selected_file_path`, and `draw_tree` are never used
[INFO] [stdout]    --> src/components/revision_files.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl RevisionFilesComponent {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn tree_item_to_span<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn selected_file_path_with_prefix(&self) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn selected_file_path(&self) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn draw_tree(&self, f: &mut Frame, area: Rect) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_nav` is never used
[INFO] [stdout]    --> src/components/revision_files.rs:591:4
[INFO] [stdout]     |
[INFO] [stdout] 591 | fn tree_nav(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_scroll_top` is never used
[INFO] [stdout]   --> src/ui/mod.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const fn calc_scroll_top(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ui/mod.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Size {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 42 |     pub const fn new(width: u16, height: u16) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]   --> src/ui/mod.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn centered_rect(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect_absolute` is never used
[INFO] [stdout]    --> src/ui/mod.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn centered_rect_absolute(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `common_nav` is never used
[INFO] [stdout]    --> src/ui/mod.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn common_nav(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_horizontal_offset` is never used
[INFO] [stdout]    --> src/ui/reflow.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl<'a, 'b> LineTruncator<'a, 'b> {
[INFO] [stdout]     | ---------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn set_horizontal_offset(&mut self, horizontal_offset: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Orientation` is never used
[INFO] [stdout]   --> src/ui/scrollbar.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Orientation {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scrollbar` is never constructed
[INFO] [stdout]   --> src/ui/scrollbar.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Scrollbar {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `render_vertical`, and `render_horizontal` are never used
[INFO] [stdout]   --> src/ui/scrollbar.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Scrollbar {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 30 |     fn new(max: usize, pos: usize, orientation: Orientation) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn render_vertical(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn render_horizontal(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_scrollbar` is never used
[INFO] [stdout]    --> src/ui/scrollbar.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn draw_scrollbar(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScrollableList` is never constructed
[INFO] [stdout]   --> src/ui/scrolllist.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct ScrollableList<'b, L, S>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `block` are never used
[INFO] [stdout]   --> src/ui/scrolllist.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | / impl<'b, L, S> ScrollableList<'b, L, S>
[INFO] [stdout] 25 | | where
[INFO] [stdout] 26 | |     S: Into<Text<'b>>,
[INFO] [stdout] 27 | |     L: Iterator<Item = S>,
[INFO] [stdout]    | |__________________________- associated items in this implementation
[INFO] [stdout] 28 |   {
[INFO] [stdout] 29 |       fn new(items: L) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |       fn block(mut self, block: Block<'b>) -> Self {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_list` is never used
[INFO] [stdout]   --> src/ui/scrolllist.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn draw_list<'b, L, S>(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_list_block` is never used
[INFO] [stdout]   --> src/ui/scrolllist.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn draw_list_block<'b, L, S>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line_offset` is never used
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | const fn get_line_offset(
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatefulParagraph` is never constructed
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct StatefulParagraph<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScrollPos` is never constructed
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct ScrollPos {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParagraphState` is never constructed
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct ParagraphState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lines`, `height`, `scroll`, and `set_scroll` are never used
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl ParagraphState {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 61 |     pub const fn lines(self) -> u16 {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub const fn height(self) -> u16 {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub const fn scroll(self) -> ScrollPos {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn set_scroll(&mut self, scroll: ScrollPos) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `block`, and `wrap` are never used
[INFO] [stdout]   --> src/ui/stateful_paragraph.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl<'a> StatefulParagraph<'a> {
[INFO] [stdout]    | ------------------------------ associated items in this implementation
[INFO] [stdout] 79 |     pub fn new<T>(text: T) -> Self
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn block(mut self, block: Block<'a>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub const fn wrap(mut self, wrap: Wrap) -> Self {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/style.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Theme {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  41 |     pub fn scroll_bar_pos(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn title(&self, focused: bool) -> Style {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn branch(&self, selected: bool, head: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn tags(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn file_tree_item(&self, is_folder: bool, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     const fn apply_select(&self, style: Style, selected: bool) -> Style {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn option(&self, on: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn diff_hunk_marker(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn text_danger(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn line_break(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn commit_hash(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn commit_unhighlighted(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn log_marker(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn commit_time(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn commit_author(&self, selected: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn commit_hash_in_blame(&self, is_blamed_commit: bool) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn push_gauge(&self) -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn attention_block() -> Style {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn get_syntax(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetItem` is never constructed
[INFO] [stdout]   --> src/queue.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct ResetItem {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tabs_to_spaces` is never used
[INFO] [stdout]   --> src/string_utils.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn tabs_to_spaces(input: String) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub static PUSH_POPUP_MSG: &str = "Push";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FORCE_PUSH_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub static FORCE_PUSH_POPUP_MSG: &str = "Force Push";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PULL_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub static PULL_POPUP_MSG: &str = "Pull";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FETCH_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub static FETCH_POPUP_MSG: &str = "Fetch";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_PROGRESS_NONE` is never used
[INFO] [stdout]   --> src/strings.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static PUSH_POPUP_PROGRESS_NONE: &str = "preparing...";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_ADDING` is never used
[INFO] [stdout]   --> src/strings.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub static PUSH_POPUP_STATES_ADDING: &str = "adding objects (1/3)";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_DELTAS` is never used
[INFO] [stdout]   --> src/strings.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub static PUSH_POPUP_STATES_DELTAS: &str = "deltas (2/3)";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_PUSHING` is never used
[INFO] [stdout]   --> src/strings.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub static PUSH_POPUP_STATES_PUSHING: &str = "pushing (3/3)";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_TRANSFER` is never used
[INFO] [stdout]   --> src/strings.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub static PUSH_POPUP_STATES_TRANSFER: &str = "transfer";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_POPUP_STATES_DONE` is never used
[INFO] [stdout]   --> src/strings.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub static PUSH_POPUP_STATES_DONE: &str = "done";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_POPUP_MSG` is never used
[INFO] [stdout]   --> src/strings.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub static PUSH_TAGS_POPUP_MSG: &str = "Push Tags";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_STATES_FETCHING` is never used
[INFO] [stdout]   --> src/strings.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub static PUSH_TAGS_STATES_FETCHING: &str = "fetching";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_STATES_PUSHING` is never used
[INFO] [stdout]   --> src/strings.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub static PUSH_TAGS_STATES_PUSHING: &str = "pushing";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PUSH_TAGS_STATES_DONE` is never used
[INFO] [stdout]   --> src/strings.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub static PUSH_TAGS_STATES_DONE: &str = "done";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_SUBMODULES` is never used
[INFO] [stdout]   --> src/strings.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub static POPUP_TITLE_SUBMODULES: &str = "Submodules";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_REMOTES` is never used
[INFO] [stdout]   --> src/strings.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub static POPUP_TITLE_REMOTES: &str = "Remotes";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_SUBTITLE_REMOTES` is never used
[INFO] [stdout]   --> src/strings.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub static POPUP_SUBTITLE_REMOTES: &str = "Details";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_FUZZY_FIND` is never used
[INFO] [stdout]   --> src/strings.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub static POPUP_TITLE_FUZZY_FIND: &str = "Fuzzy Finder";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_TITLE_LOG_SEARCH` is never used
[INFO] [stdout]   --> src/strings.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub static POPUP_TITLE_LOG_SEARCH: &str = "Search";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_FAIL_COPY` is never used
[INFO] [stdout]   --> src/strings.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub static POPUP_FAIL_COPY: &str = "Failed to copy text";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_SUCCESS_COPY` is never used
[INFO] [stdout]   --> src/strings.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub static POPUP_SUCCESS_COPY: &str = "Copied Text";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `POPUP_COMMIT_SHA_INVALID` is never used
[INFO] [stdout]   --> src/strings.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub static POPUP_COMMIT_SHA_INVALID: &str = "Invalid commit sha";
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_branches` is never used
[INFO] [stdout]   --> src/strings.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn title_branches() -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_tags` is never used
[INFO] [stdout]   --> src/strings.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn title_tags() -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_status` is never used
[INFO] [stdout]   --> src/strings.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn title_status(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_diff` is never used
[INFO] [stdout]   --> src/strings.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn title_diff(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `title_index` is never used
[INFO] [stdout]   --> src/strings.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn title_index(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msg_opening_editor` is never used
[INFO] [stdout]    --> src/strings.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn msg_opening_editor(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msg_title_error` is never used
[INFO] [stdout]    --> src/strings.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn msg_title_error(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msg_title_info` is never used
[INFO] [stdout]    --> src/strings.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn msg_title_info(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title` is never used
[INFO] [stdout]    --> src/strings.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn commit_title() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_reword_title` is never used
[INFO] [stdout]    --> src/strings.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn commit_reword_title() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title_merge` is never used
[INFO] [stdout]    --> src/strings.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn commit_title_merge() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title_revert` is never used
[INFO] [stdout]    --> src/strings.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn commit_title_revert() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_title_amend` is never used
[INFO] [stdout]    --> src/strings.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn commit_title_amend() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_msg` is never used
[INFO] [stdout]    --> src/strings.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn commit_msg(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_first_line_warning` is never used
[INFO] [stdout]    --> src/strings.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn commit_first_line_warning(count: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `branch_name_invalid` is never used
[INFO] [stdout]    --> src/strings.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub const fn branch_name_invalid() -> &'static str {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_editor_msg` is never used
[INFO] [stdout]    --> src/strings.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn commit_editor_msg(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stash_popup_title` is never used
[INFO] [stdout]    --> src/strings.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub fn stash_popup_title(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stash_popup_msg` is never used
[INFO] [stdout]    --> src/strings.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn stash_popup_msg(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_reset` is never used
[INFO] [stdout]    --> src/strings.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn confirm_title_reset() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_undo_commit` is never used
[INFO] [stdout]    --> src/strings.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn confirm_title_undo_commit() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_stashdrop` is never used
[INFO] [stdout]    --> src/strings.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn confirm_title_stashdrop(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_stashpop` is never used
[INFO] [stdout]    --> src/strings.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn confirm_title_stashpop(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_merge` is never used
[INFO] [stdout]    --> src/strings.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn confirm_title_merge(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_merge` is never used
[INFO] [stdout]    --> src/strings.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn confirm_msg_merge(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_abortmerge` is never used
[INFO] [stdout]    --> src/strings.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub fn confirm_title_abortmerge() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_abortrevert` is never used
[INFO] [stdout]    --> src/strings.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn confirm_title_abortrevert() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_revertchanges` is never used
[INFO] [stdout]    --> src/strings.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn confirm_msg_revertchanges() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_title_abortrebase` is never used
[INFO] [stdout]    --> src/strings.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn confirm_title_abortrebase() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_abortrebase` is never used
[INFO] [stdout]    --> src/strings.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn confirm_msg_abortrebase() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_reset` is never used
[INFO] [stdout]    --> src/strings.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn confirm_msg_reset() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_reset_lines` is never used
[INFO] [stdout]    --> src/strings.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn confirm_msg_reset_lines(lines: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `confirm_msg_undo_commit` is never used
[INFO] [stdout]    --> src/strings.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn confirm_msg_undo_commit() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loading_text` is never used
[INFO] [stdout]    --> src/strings.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn loading_text(_key_config: &SharedKeyConfig) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ellipsis_trim_start` is never used
[INFO] [stdout]    --> src/strings.rs:426:8
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub fn ellipsis_trim_start(s: &str, width: usize) -> Cow<str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RARE_ACTION` is never used
[INFO] [stdout]   --> src/strings.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub const RARE_ACTION: i8 = 30;
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NAV` is never used
[INFO] [stdout]   --> src/strings.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub const NAV: i8 = 20;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AVERAGE` is never used
[INFO] [stdout]   --> src/strings.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub const AVERAGE: i8 = 10;
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRIORITY` is never used
[INFO] [stdout]   --> src/strings.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub const PRIORITY: i8 = 1;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHECKMARK` is never used
[INFO] [stdout]   --> src/strings.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const CHECKMARK: &str = "\u{2713}"; //✓
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPACE` is never used
[INFO] [stdout]   --> src/strings.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const SPACE: &str = "\u{02FD}"; //˽
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_SPACE` is never used
[INFO] [stdout]   --> src/strings.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const EMPTY_SPACE: &str = " ";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FOLDER_ICON_COLLAPSED` is never used
[INFO] [stdout]   --> src/strings.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const FOLDER_ICON_COLLAPSED: &str = "\u{25b8}"; //▸
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FOLDER_ICON_EXPANDED` is never used
[INFO] [stdout]   --> src/strings.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const FOLDER_ICON_EXPANDED: &str = "\u{25be}"; //▾
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY_STR` is never used
[INFO] [stdout]   --> src/strings.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const EMPTY_STR: &str = "";
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ELLIPSIS` is never used
[INFO] [stdout]   --> src/strings.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const ELLIPSIS: char = '\u{2026}'; // …
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_and_notify` is never used
[INFO] [stdout]   --> src/notify_mutex.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | / impl<T> NotifyableMutex<T>
[INFO] [stdout] 13 | | where
[INFO] [stdout] 14 | |     T: Send + Sync,
[INFO] [stdout]    | |___________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |       pub fn set_and_notify(&self, value: T) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_cmds` and `toggle_more` are never used
[INFO] [stdout]    --> src/cmdbar.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl CommandBar {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn set_cmds(&mut self, cmds: Vec<CommandInfo>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn toggle_more(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/strings.rs:426:31
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub fn ellipsis_trim_start(s: &str, width: usize) -> Cow<str> {
[INFO] [stdout]     |                               ^^^^                   ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 426 | pub fn ellipsis_trim_start(s: &str, width: usize) -> Cow<'_, str> {
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.20s
[INFO] running `Command { std: "docker" "inspect" "85c9a789f2c07fd17c85deb3b1132320ee20014a01f34bd948ef82387143d0d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85c9a789f2c07fd17c85deb3b1132320ee20014a01f34bd948ef82387143d0d1", kill_on_drop: false }`
[INFO] [stdout] 85c9a789f2c07fd17c85deb3b1132320ee20014a01f34bd948ef82387143d0d1
